//统计代码行
long cod(string file){//空行也算行 
	long number=0;
	ifstream infile; 
    infile.open(file.data());   //将文件流对象与文件连接起来 
    assert(infile.is_open());   //若失败,则输出错误消息,并终止程序运行 

    string s;
    while(getline(infile,s))
    {
        number++;
    }
    infile.close();             //关闭文件输入流 
    return number;
}
//统计空白行
long empty(string file){
	long number=0;
	ifstream infile; 
    infile.open(file.data());   //将文件流对象与文件连接起来 
    assert(infile.is_open());   //若失败,则输出错误消息,并终止程序运行 

    string s;
    while(getline(infile,s))
    {
    	if(s==""){
        number++;
		}
    }
    infile.close();             //关闭文件输入流 
    return number;
}
//统计注释行
long note(string file){//当一行里有//算有一行注释行 
	char c;
	long number=0;
	int temp=0,q=0;
	ifstream infile; 
    infile.open(file.data());//将文件流对象与文件连接起来 
    assert(infile.is_open());//若失败,则输出错误消息,并终止程序运行 
    infile >> noskipws;
    while (!infile.eof())
    {
        infile>>c;
        if(c=='/'){
        	temp++;
		}else{
			temp=0;
		}
		if(temp==2&&q!=1){
			number++;
			temp=0;
			q=1;
		}
		if (c=='\n'){
			q=0;
		}
    }
    infile.close();//关闭文件输入流 
	return number;
}